(function($) {
		var maxSugg = 10; //Nombre de suggestions max affichee
        $.fn.autocomplete = function(value) { 
        	this.each(function() {
        		var div = $("<div>").addClass("autocomplete");
        		$(this).keyup(function(event) {
					var input = $(this);
        			if(event.keyCode == 13){
        				input.val(div.find("div.item.hover").text());
        				div.hide();
        				return;
        			}
            		if(event.keyCode == 40){
            			if(div.find("div.item.hover").size() > 0) {
            				var nextItem = div.find("div.item.hover").next();
            				div.find("div.item").removeClass("hover");
            				nextItem.addClass("hover");
            			} else {
            				div.find("div.item").first().addClass("hover");
            			}
            			return;
            		} 
	            		
            		if(event.keyCode == 38){
	            			if(div.find("div.item.hover").size() > 0) {
	            				var nextItem = div.find("div.item.hover").prev();
	            				div.find("div.item").removeClass("hover");
	            				nextItem.addClass("hover");
	            			} else {
	            				div.find("div.item").first().addClass("hover");
	            			}
	            			return;
	            	}
					div.empty();
					if (input.val().length != 0) {
						$.each(value, function(index, champ) {
							if (div.find("div.item").size() < maxSugg) {
								var pos = champ.indexOf(input.val());
								if (pos != -1) {
									var item = $("<div>").addClass("item").html(champ);
									item.hover(function() {
										div.find("div.item").removeClass("hover");
										$(this).addClass("hover");
									});
									item.mousedown(function() {
										input.val($(this).text());
				        				div.hide();
									});
									div.append(item);
								}
							}
						})
						div.css( {"position" : "absolute",
        						  "background-color" : "white",
        						  "top" : $(this).position().top+$(this).outerHeight() ,
        						  "left" : $(this).position().left,
        						  "width" : $(this).outerWidth()});
						div.show();
					} else {
						div.hide();
					}
        		});
        		$(this).parent().append(div);
        	});
        	return this;
        };
        //Permet de cacher les suggestions
        $.fn.autocompleteHide = function() { 
        	this.each(function() {
        		$(this).parent().find(".autocomplete").hide();
        	});
        };
})(jQuery);